Dynamic control of song frequency in a playlist provided through a music service

ABSTRACT

A method includes inputting a seed data through a media interface associated with a music service on a music device. The seed data is a driver of creation of a playlist associated with the music service. The method also includes dynamically controlling a frequency of songs associated with the seed data in the playlist through a user interface of the media interface. The frequency of songs is a number of primary songs and a number of secondary songs in the playlist.

CLAIM OF PRIORITY

This is a continuation application of US Utility Application Ser. No. 12/703,801 titled “SYSTEM AND METHOD OF GENERATING A PLAYLIST BASED ON A FREQUENCY RATIO” filed on Feb. 11, 2010.

FIELD OF TECHNOLOGY

This disclosure relates generally to music service(s) and, more particularly, to a method, an apparatus and/or a system of dynamically controlling song frequency in a playlist provided through a music service.

BACKGROUND

A user of a music service (e.g., Apple®'s iTunes®, Napster®, Rhapsody®) on a music device (e.g., mobile phone, laptop, desktop computer, portable media player) may purchase one or more song(s) and/or possess streaming access thereto. In the case of a streaming access to songs through the music service, the user may have the option to generate a playlist based on an input data provided therefrom. For example, the user may input an artist (e.g., The Beatles) of preference, and a playlist including the artist (e.g., The Beatles) and/or other related artists may be rendered through the media interface. The user may not prefer one or more of the other related artists, but still may have to go through the inconvenience of listening to songs of the aforementioned one or more of the other related artists. Alternately, the user may have to switch playlist(s) or vary the playlist through inputting another data. The user may, therefore, be unable to find a playlist dominated by songs of his/her preference, leading to frustration with the music service.

SUMMARY

Disclosed are a method, an apparatus and/or a system of dynamically controlling song frequency in a playlist provided through a music service.

In one aspect, a method includes inputting a seed data through a media interface associated with a music service on a music device. The seed data is a driver of creation of a playlist associated with the music service. The method also includes dynamically controlling a frequency of songs associated with the seed data in the playlist through a user interface of the media interface. The frequency of songs is a number of primary songs and a number of secondary songs in the playlist.

The dynamic control of the frequency of songs includes determining a set of primary songs and/or secondary songs based on the frequency obtained through the user interface. The primary songs are directly related to the seed data and the secondary songs are indirectly related to the seed data. The dynamic control also includes transmitting metadata associated with the primary songs and/or the secondary songs to be rendered on the playlist, and providing a capability to stream the primary songs and/or the secondary songs through the media interface on the music device.

The methods and systems disclosed herein may be implemented in any means for achieving various aspects, and may be executed in a form of a machine-readable medium embodying a set of instructions that, when executed by a machine, cause the machine to perform any of the operations disclosed herein. Other features will be apparent from the accompanying Drawings and from the Detailed Description that follows.

BRIEF DESCRIPTION OF THE VIEWS OF DRAWINGS

Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1 is a schematic view of a music interface, according to one or more embodiments.

FIG. 2 is a schematic view of communication between a music device rendering the music interface of FIG. 1 and a music server, according to one or more embodiments.

FIG. 3A is a schematic view of a selection tool associated with the music interface of FIG. 1, according to one or more embodiments.

FIG. 3B is a schematic view of generation of a playlist based on the position of a slider on the selection tool associated with the music interface of FIG. 1, according to one or more embodiments.

FIG. 4 is a process flow diagram detailing operations involved in a method of dynamically controlling song frequency in a playlist provided through a music service, according to one or more embodiments.

Other features of the present embodiments will be apparent from the accompanying Drawings and from the Detailed Description that follows.

DETAILED DESCRIPTION

Example embodiments, as described below, may be used to provide a method, a system and/or an apparatus of dynamically controlling song frequency in a playlist provided through a music service. Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments.

FIG. 1 shows a media interface 100, according to one embodiment. In one or more embodiments, media interface 100 may be used to select and play songs based on a selection criterion. In one or more embodiments, media interface 100 may be installed on a data processing device (e.g., a computing device, a mobile phone) after appropriate file(s) being downloaded through a computer network (e.g., Internet) and/or through a machine-readable medium (e.g., Compact Disc (CD), Digital Video Disc (DVD)). Alternately, in one or more embodiments, media interface 100 may be launched after loading an appropriate website of a music service (e.g., a streaming music service) associated therewith and selecting/searching for desired music/songs. In one or more embodiments, the songs may be selected based on a seed data provided to the user. In one or more embodiments, the seed data may include but is not limited to a seed artist, a seed album and a seed song.

It is obvious that the seed data discussed above may be the driver of playlist creation associated with a user of media interface 100. In one or more embodiments, the user may obtain a playlist and/or search for desired albums/songs by inputting the seed data such as artist/band name (e.g., The Beatles, Bob Dylan), genre (e.g., rock, reggae), album name (e.g., Abbey Road (as associated with The Beatles), Highway 61 Revisited (as associated with Bob Dylan)), a playlist (e.g., a top 40 playlist) and a time frame (e.g., 1950s, 1960s). Selection based on other parameters is also within the scope of the exemplary embodiments. Alternately, in one or more embodiments, the user may be presented playlist(s), artist(s)/album(s) arranged in an order (e.g., alphabetically), genre(s), time frame(s) etc. (or, in other words, seed data) to enable selection of desired music thereof.

In one or more embodiments, the user may enter the seed data through a user interface (e.g., a user interface 208 as illustrated in FIG. 2) of media interface 100. The seed data may be input (e.g., through a virtual keyboard, as shown in FIG. 1, in the case of a touchscreen, or, manually) through artist name or song display 110, and displayed on a seed data display 102. Non-touchscreen forms of inputting seed data is within the scope of the exemplary embodiments. Alternately, in one or more embodiments, user interface 208 may present the seed data to the user to enable selection of the desired music thereof, as discussed above. In one or more embodiments, once the seed data (e.g., artist and/or song) is entered and a playlist is created, media interface 100 may present the user with a slider 108 configured to enable control of a frequency of music associated with the seed data in the playlist (e.g., playlist 104) created.

The frequency of music associated with the seed data may be a percentage of primary songs (e.g., primary songs 190, 192 and 194) in the playlist (e.g., playlist 104), with the remaining songs being secondary songs (e.g., secondary songs 196, 198). In an example embodiment shown in FIG. 1, primary songs may be songs of an artist/band (e.g., The Beatles), and secondary songs may be songs of other artists/bands similar to the artist/band associated with the primary songs. In one or more embodiments, the user may be provided a capability to control the frequency of music associated with the seed data in a playlist (e.g., playlist 104) associated therewith through sliding slider 108 along an axis of a selection tool 106.

In one or more embodiments, when a user inputs the seed data, a client module (e.g., client module 210 of FIG. 2) associated with media interface 100 (media interface 100 shown as being rendered on (e.g., through a web browser) a music device 200 (e.g., a computing device, a mobile phone)) may send a request to a music server (e.g., music server 204 of FIG. 2) through the input seed data. In one or more embodiments, based on the position of slider 108 on selection tool 106 and the input seed data, music server 204 may be configured to provide a playlist 104 to music device 100. In one or more embodiments, playlist 104 may include one or more primary song(s) and one or more secondary song(s), a number of each of which is according to the position of slider 108 on selection tool 106 (or, alternately, frequency ratio).

In one or more embodiments, the frequency ratio (e.g., associated with a number of primary songs and a number of secondary songs) may be evaluated by a selection tool module (not shown) of frequency module 212, based on the position of slider 108 on selection tool 106. For example, when slider 108 is near the center of selection tool 106, the selection tool module may be configured to select an approximately equal number of primary songs and secondary songs associated with the seed data. When slider 108 is at an approximate starting position (e.g., 90% towards the side of “same artist,” as shown in FIG. 1) on the axis of selection tool 106, a playlist including more of primary songs (e.g., 90% primary songs) and less of secondary songs (e.g., 10% secondary songs) may be generated. When slider 108 is at an approximate ending position (e.g., 90% towards the side of “mostly similar artist(s),” as shown in FIG. 1), a playlist including more of secondary songs (e.g., 90% secondary songs) and less of primary songs (e.g., 10% primary songs) may be generated.

In the example scenario of the seed data being The Beatles, slider 108 being at the starting position of the axis thereof may generate an entire playlist (e.g., playlist 104) of songs of The Beatles. When slider 108 is at the ending position of the axis thereof, the playlist may entirely include songs of artists similar to The Beatles, without any actual song of The Beatles. Sliding slider 108 across the axis may dynamically change the contents of the playlist in accordance with the frequency ratio. 90% close to the starting position may lead to the playlist including 90% of songs of The Beatles and 10% of songs similar to The Beatles. 90% close to the ending position may lead to the playlist including 10% of songs of The Beatles and 90% of songs similar to The Beatles.

In one or more embodiments, the similarity between the primary songs and the secondary songs may be based on parameters such as popularity of artist/song(s) among users of the cloud music service (e.g., accessed through media interface 100), chart popularity, genre, time frame, collaboration(s) between artists etc., producer(s) etc. Other parameters are within the scope of the exemplary embodiments. In the example case of The Beatles being the seed data, the “mostly similar artist(s)” may be chosen based on popularity of the “similar artists” among the users of the cloud music service (e.g., accessed through media interface 100), similar artists of “The British invasion” (an example of genre) started by The Beatles (e.g., The Rolling Stones, The Kinks, The Hollies), cover versions (e.g., by Richie Havens), 1960s (example of time frame), collaborators with members of The Beatles (e.g., Yoko Ono with John Lennon) etc. Algorithms associated with determining songs of similar artists are known to one skilled in the art and, therefore, discussion associated therewith is skipped for the sake of brevity and convenience.

In one or more embodiments, slider 108 may be a preferred selection tool 106 to adjust the frequency ratio. Slider 108 may be preferable to a knob, because of an ease of adjustment thereof, when compared to a knob. For example, a user that is travelling (e.g., running, driving a car) may have an easier time to visually locate and adjust slider 108 rather than rotate a knob. However, selection tools other than slider 108 are within the scope of the exemplary embodiments.

FIG. 2 shows communication between a music device 200 and a music server 204 through a computer network (e.g., network 202), according to one embodiment. In one or more embodiments, a user may access media interface 100 through music device 200. Examples of music device 200 may include but is not limited to a mobile phone, a portable media player and a computing device (e.g., a laptop, a desktop computer). In one or more embodiments, the user may request for songs through user interface 208 of media interface 100 (e.g., by searching for seed data as discussed with regard to FIG. 1). Alternately, in one or more embodiments, a song may be selected from a list of seed data presented to the user, as discussed above.

In one or more embodiments, client module 210 of music device 200 may communicate a request associated with the user to music server 204 through network 202. In one or more embodiments, network 202 may include but is not limited to a Local Area Network (LAN), Internet and satellite communication network.

In one or more embodiments, music server 204 may process the request associated with the user to fetch the appropriate song(s) from a database 206. In one or more embodiments, database 206 may be resident on music server 204 and/or one or more other servers. In one or more embodiments, the one or more other servers (not shown) may be coupled to music server 204 through a computer network (e.g., again, network 202). In one or more embodiments, music server 204 may also include a frequency module 212 configured to evaluate the frequency ratio based on the position of slider 108 on selection tool 106, the position being determined through the user. In one or more embodiments, database 206 may include a master repository of songs and/or metadata (e.g., artist name, album name, producer name, record label) associated therewith. In one or more embodiments, the master repository of songs on database 206 may be tagged with the aforementioned metadata from one or more other servers. Further, in one or more embodiments, music server 204 may be configured to provide the songs obtained from database module 206 to music device 200 through network 202.

Consider an example scenario of slider 108 being exactly halfway between “same artist” and “mostly similar artist(s).” Now, based on the position of slider 108, frequency module 212 may be configured to communicate a request on behalf of the user to music server 204. Music server 204 (and/or one or more other servers) may provide streaming access to a song or a list of songs, in accordance with the seed data associated with the request, to music device 200 through media interface 100. Metadata associated with the song or the list of songs may also be transmitted to music device 200 from database 206 and/or one or more other servers. The aforementioned metadata may be translated into song information (e.g., primary song information, secondary song information) and rendered on playlist 104. Depending on the frequency ratio (here, 50% primary songs and 50% secondary songs) based on the position of slider 108, pointers to memory location(s) associated with the primary songs (e.g., 50 primary songs) and/or the secondary songs (e.g., 50 secondary songs) on music server 204 and/or one or more other server(s) may be stored in a cache (not shown) associated with the user (e.g., in cloud storage). Alternately, the set of 100 songs (50 primary songs and 50 secondary songs) may be stored in the cache. While one song is being rendered through media interface 100, the user may possess the capability to click another song in the playlist to view details thereof. The user may also “skip” the song to be listened in accordance with an order and “jump” to another song in the playlist.

When the user double-clicks on a song in playlist 104, the new song may become the seed for a new playlist, depending on the position of slider 108. When the user single-clicks on the song in playlist 104, the new song may be played instantly without changing playlist 104. Other implementation(s) thereof are within the scope of the exemplary embodiments. When the new song becomes the seed for a new playlist creation, the cache including pointers to memory location(s) may be dynamically updated with the new set of primary song(s) and/or secondary song(s). Again, obviously the number of primary songs and secondary songs may be controlled through sliding the position of slider 108 on selection tool 106. Whenever the position of slider 108 changes, the cache may be dynamically updated with information associated with new primary song(s) and/or new secondary song(s).

It is obvious that slider 108 may be utilized with other sliders to provide variety and user-defined characteristics to playlist 104. In one or more embodiments, again, the choice of the appropriate primary song(s) and/or the secondary song(s) may be based on algorithm(s) that consider factors such as popularity among users in the cloud service environment, genre relation, time frame etc.

FIG. 3A shows selection tool 106, according to one embodiment. In one or more embodiments, selection tool 106 may include an axis 310 to enable the user to control a frequency ratio of primary song(s) and secondary song(s) by sliding slider 108 thereacross. For example, the user may slide slider 108 to a position A 302, a position B 304 and/or a position C 306 on the axis (e.g., axis 310) of selection tool 106. Based on the position of slider 108, the frequency ratio of the primary song(s) and the secondary song(s) may be automatically adjusted through appropriate instructions executing on a processor and a playlist (e.g., playlist 104) may be generated.

In the example embodiment shown in FIG. 3A, for position A 302, a playlist including 90% primary songs and 10% secondary songs may be generated. For position B 304, a playlist including 50% primary songs and 50% secondary songs may be generated and for position C 306, a playlist including 90% secondary songs and 10% primary songs may be generated.

FIG. 3B shows generation of a playlist based on the position of slider 108 on selection tool 106, according to one embodiment. In one or more embodiments, a user may be provided a list of seed data (e.g., artist, album, song, etc.) for selection. In one or more embodiments, based on the seed data selected by the user, the primary song(s) in database 206 may be determined through appropriate instructions executing on a processor. In one or more embodiments, the identified primary song(s) in database 206 may be stored in primary song module 324. Further, in one or more embodiments, the user may be provided a streaming access to the primary song(s) in database 206. In one or more embodiments, based on the seed data (and/or the primary song(s)), secondary song(s) similar to the primary song(s) may be identified in database 206. In one or more embodiments, the identified secondary song(s) in database 206 may be stored in secondary song module 326. Further, in one or more embodiments, the user may be provided a streaming access to the secondary song(s). It is obvious that the primary song(s) and/or secondary song(s) may be located in one or more other server(s).

In one or more embodiments, an artist associated with a secondary song may be different from an artist associated with a primary song. In one or more embodiments, the primary song(s) and the secondary song(s) may be blended in playlist 104 according to a frequency ratio provided by a position module 312. In one or more embodiments, as discussed above, the frequency ratio may be selected by sliding slider 108 to a desired point along a vertical, a diagonal and/or a horizontal axis on selection tool 106. In one or more embodiments, based on the position of slider 108, position module 312 may evaluate the frequency ratio and blend the primary song and the secondary song in accordance therewith. In an example embodiment, for position A 302 (e.g., as illustrated in FIG. 3A), position module 312 may evaluate the frequency ratio as 90% primary songs and 10% secondary songs; for position B 304, position module 312 may evaluate the frequency ratio as 50% primary songs and 50% secondary songs; for position C 306, position module 312 may evaluate the frequency ratio as 10% primary songs and 90% secondary songs.

In one or more embodiments, playlist module 230 may generate a playlist (e.g., playlist 104) of songs based on the frequency ratio selected by the user. In one or more embodiments, the generated playlist (e.g., playlist 104) may then be displayed on music device 200 through media interface 100.

In one or more embodiments, frequency module 212 may execute on music device 200 instead of music server 204. All locations of constituent elements in FIGS. 1-3 are merely for illustrative purposes and do not serve to limit interpretations of exemplary embodiments. It is obvious that the user may save playlist 104 in a “cloud” associated therewith.

FIG. 4 is a process flow diagram detailing operations involved in a method of controlling a frequency of songs associated with a seed data in a playlist 104 provided through a music service, according to one or more embodiments. In one or more embodiments, operation 402 may involve inputting a seed data through media interface 100 associated with the music service on music device 200, the seed data being a driver of creation of playlist 104 associated with the music service. In one or more embodiments, operation 404 may involve dynamically controlling a frequency of songs associated with the seed data in playlist 104 through user interface 208 of media interface 100. In one or more embodiments, the frequency of songs may be a number of primary songs and a number of secondary songs in the playlist.

In one or more embodiments, the dynamic control of operation 404 may include determining a set of primary songs and/or secondary songs based on the frequency obtained through user interface 208. In one or more embodiments, the primary songs may be directly related to the seed data and the secondary songs may be indirectly related to the seed data. In one or more embodiments, the dynamic control of operation 404 may also include transmitting metadata associated with the primary songs and/or the secondary songs to be rendered on playlist 104, and providing a capability to stream the primary songs and/or the secondary songs through media interface 100 on music device 200.

Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices and modules described herein may be enabled and operated using hardware circuitry (e.g., CMOS based logic circuitry), firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine readable medium). For example, the various electrical structures and methods may be embodied using transistors, logic gates, and electrical circuits (e.g., application specific integrated (ASIC) circuitry and/or Digital Signal Processor (DSP) circuitry).

In addition, it will be appreciated that the various operations, processes, and methods disclosed herein may be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., a computer device). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. 

1. A method comprising: inputting a seed data through a media interface associated with a music service on a music device, the seed data being a driver of creation of a playlist associated with the music service; and dynamically controlling a frequency of songs associated with the seed data in the playlist through a user interface of the media interface, the frequency of songs being a number of primary songs and a number of secondary songs in the playlist, and the dynamic control including: determining a set of at least one of primary songs and secondary songs based on the frequency obtained through the user interface, the primary songs being directly related to the seed data and the secondary songs being indirectly related to the seed data; transmitting metadata associated with the at least one of the primary songs and the secondary songs to be rendered on the playlist; and providing a capability to stream the at least one of the primary songs and the secondary songs through the media interface on the music device.
 2. The method of claim 1, comprising controlling the frequency of the primary songs and the secondary songs in the playlist through a slider on the user interface having an axis across which the slider is configured to be moved.
 3. The method of claim 1, further comprising: caching information associated with the at least one of the primary songs and the secondary songs; and updating the cached information when at least one of: the frequency of songs associated with the seed data is changed through the media interface and the seed data is changed through the media interface.
 4. The method of claim 1, wherein the primary songs are associated with an artist and the secondary songs are associated with at least one another artist similar to the artist associated with the primary songs, and the method further comprises: determining the secondary songs based on at least one of: a popularity of the at least one another artist among users of the music service, a chart popularity, a time frame of the artist associated with the primary songs, a genre of the artist associated with the primary songs and a collaboration between the at least one another artist and the artist associated with the primary songs.
 5. The method of claim 3, comprising dynamically changing the seed data during the rendering of the playlist by utilizing a song of the at least one of the primary songs and the secondary songs as a new seed data. 